home *** CD-ROM | disk | FTP | other *** search
- 100 'Number of days between dates ("NUMDAYS")
- 110 CLS
- 120 COLOR 0,15 : PRINT "Number of Days Between Dates" : COLOR 15,0
- 130 PRINT
- 140 ' Let user enter dates
- 150 GOSUB 1000 'Get number of days in months
- 160 PRINT "Enter starting date"
- 170 GOSUB 2000
- 180 GOSUB 280 'Find number of days since date 0
- 190 SFACTOR = FACTOR
- 200 PRINT : PRINT "Enter ending date"
- 210 GOSUB 2000
- 220 GOSUB 280 'Find number of days since date 0
- 230 EFACTOR = FACTOR
- 240 PRINT
- 250 PRINT "Number of days: "; EFACTOR - SFACTOR
- 260 END
- 270 ' Subroutine to calculate factor for a date
- 280 FACTOR = 365 * YEAR + DAY + 31 * (MONTH - 1)
- 290 'January or February
- 300 IF MONTH <= 2 THEN FACTOR = FACTOR + (YEAR - 1) \ 4 - INT (3/4 * ( (YEAR-1) \ 100 + 1) )
- 310 'March or later
- 320 IF MONTH >= 3 THEN FACTOR = FACTOR - INT (.4 * MONTH + 2.3) + YEAR \ 4 - INT ( 3/4 * (YEAR \ 100 + 1) )
- 330 RETURN
- 990 ' Subroutine to set up list with number of days in months
- 1000 DIM NDAYS(12)
- 1010 FOR N = 1 TO 12
- 1020 READ NDAYS(N)
- 1030 NEXT N
- 1040 'Number of days in months
- 1050 DATA 31, 28, 31, 30
- 1060 DATA 31, 30, 31, 31
- 1070 DATA 30, 31, 30, 31
- 1080 RETURN
- 1990 ' Subroutine to let user enter date
- 2000 INPUT "Month (1-12): ", MONTH
- 2010 IF (MONTH < 1) OR (MONTH > 12) THEN PRINT " *No such month *": GOTO 2000
- 2020 INPUT "Day (1-31): ", DAY
- 2030 INPUT "Year: ", YEAR
- 2040 IF (YEAR < 1900) OR (YEAR > 2100) THEN PRINT "Invalid year": GOTO 2000
- 2050 'Check for leap year
- 2060 IF (YEAR MOD 4) = 0 AND (YEAR MOD 100) <> 0 THEN NDAYS(2) = 29
- 2070 IF (YEAR MOD 400) = 0 THEN NDAYS(2) = 29
- 2080 'Check for valid date
- 2090 IF DAY > NDAYS(MONTH) THEN PRINT "* No such day *": GOTO 2000
- 2100 RETURN